/*
 * AbstractSelection.h
 *
 *  Created on: 2010-9-26
 *      Author: wenjian
 */

#ifndef ABSTRACTSELECTION_H_
#define ABSTRACTSELECTION_H_
#include <event/EventListener.h>
#include "SelectEvent.h"

namespace Ed {
  class AbstractElement;
  class AbstractSelection : public Thk::EventListener{
    public:
      AbstractSelection();
      virtual ~AbstractSelection();


      /**
       * 处理选择元素事件
       */
      //virtual bool handle(const Thk::Event* e)=0;
      virtual bool handle(const Thk::Event* e){
        return false;
      }


      /**
       * 加入元素
       */
      //virtual bool add(AbstractElement* e, int pos=-1)=0;
      virtual bool add(AbstractElement* e, int pos=-1){
        return false;
      }


      /**
       * 移除元素
       */
      //virtual bool remove(AbstractElement* e)=0;
      virtual bool remove(AbstractElement* e){
        return false;
      }


      /**
       * 清除所有元素
       */
      //virtual void clear()=0;
      virtual void clear(){
        return;
      }

  };

}

#endif /* ABSTRACTSELECTION_H_ */
